home *** CD-ROM | disk | FTP | other *** search
/ Fritz: All Fritz / All Fritz.zip / All Fritz / FILES / PROGMISC / FPCDOCS.LZH / EQUCOLON.SEQ < prev    next >
Text File  |  1988-09-19  |  2KB  |  72 lines

  1. \ EQUCOLON.SEQ          words to modify VALUEs          by Tom Zimmer
  2.  
  3. \ Link this file into the FILELIST chain.
  4.  
  5. FILES DEFINITIONS
  6.  
  7. VARIABLE EQUCOLON.SEQ
  8.  
  9. FORTH DEFINITIONS   META IN-META
  10.  
  11. CODE    %!>     ( N1 --- )      \ Store to BODY field of following def
  12.                 LODSW ES:               \ 12 + 2
  13.                 MOV BX, AX              \  2
  14.                 POP 3 [BX]              \ 17 + 9
  15.                 NEXT            END-CODE
  16.  
  17. CODE    OFF>    ( --- )      \ Store to BODY field of following def
  18.                 LODSW ES:               \ 12 + 2
  19.                 MOV BX, AX              \  2
  20.                 MOV 3 [BX], # 0  WORD
  21.                 NEXT            END-CODE
  22.  
  23. CODE    ON>     ( --- )      \ Store to BODY field of following def
  24.                 LODSW ES:               \ 12 + 2
  25.                 MOV BX, AX              \  2
  26.                 MOV 3 [BX], # -1 WORD
  27.                 NEXT            END-CODE
  28.  
  29. CODE    %@>     ( --- N1 )      \ Fetch BODY field of following def
  30.                 LODSW ES:
  31.                 MOV BX, AX
  32.                 PUSH 3 [BX]
  33.                 NEXT            END-CODE
  34.  
  35. : =:            ( N1 T1 --- )
  36.                 STATE @
  37.                 IF      COMPILE %!>
  38.                 ELSE    ' >BODY !
  39.                 THEN    ; IMMEDIATE
  40.  
  41. CODE    INCR>   ( --- )
  42.                 LODSW ES:
  43.                 MOV BX, AX
  44.                 INC 3 [BX] WORD
  45.                 NEXT            END-CODE
  46.  
  47. CODE    DECR>   ( --- )
  48.                 LODSW ES:
  49.                 MOV BX, AX
  50.                 DEC 3 [BX] WORD
  51.                 NEXT            END-CODE
  52.  
  53. CODE    +!>     ( N1 --- )
  54.                 POP CX
  55.                 LODSW ES:
  56.                 MOV BX, AX
  57.                 ADD 3 [BX], CX WORD
  58.                 NEXT            END-CODE
  59.  
  60. : !>            ( N1 T1 --- )
  61.                 STATE @
  62.                 IF      COMPILE %!>
  63.                 ELSE    ' >BODY !
  64.                 THEN    ; IMMEDIATE
  65.  
  66. : @>            ( N1 T1 --- )
  67.                 STATE @
  68.                 IF      COMPILE %@>
  69.                 ELSE    ' >BODY @
  70.                 THEN    ; IMMEDIATE
  71.  
  72.